home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / User Contributions / oodles-of-utils.sea / oodles-of-utils / work-in-progress / defproc-u.lisp next >
MacBinary  |  1992-03-04  |  10.4 KB  |  [TEXT/CCL2]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Mar 4 16:31:38 1992, modified Wed Mar 4 16:31:38 1992, creator Common Lisp 2, type ASCII, 9881 bytes "defproc-u.lisp" , at 0x2719 442 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[CCL2]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0e 64 65 66 70 72 6f | 63 2d 75 2e 6c 69 73 70 |..defpro|c-u.lisp|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 43 4c | 32 01 00 00 00 00 00 00 |.TEXTCCL|2.......|
|00000050| 00 00 00 00 00 26 99 00 | 00 01 ba a5 da f2 3a a5 |.....&..|......:.|
|00000060| da f2 3a 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..:.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 24 7e 00 00 |........|....$~..|
|00000080| 28 69 6e 2d 70 61 63 6b | 61 67 65 20 3a 6f 6f 75 |(in-pack|age :oou|
|00000090| 29 0d 28 6f 6f 75 2d 70 | 72 6f 76 69 64 65 20 3a |).(oou-p|rovide :|
|000000a0| 64 65 66 70 72 6f 63 2d | 75 29 0d 3b 3b 3b 3b 3b |defproc-|u).;;;;;|
|000000b0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000c0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000d0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000e0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000f0| 3b 0d 3b 3b 20 64 65 66 | 70 72 6f 63 2d 75 2e 4c |;.;; def|proc-u.L|
|00000100| 69 73 70 0d 3b 3b 0d 3b | 3b 20 43 6f 70 79 72 69 |isp.;;.;|; Copyri|
|00000110| 67 68 74 20 a9 20 31 39 | 39 32 20 4e 6f 72 74 68 |ght . 19|92 North|
|00000120| 77 65 73 74 65 72 6e 20 | 55 6e 69 76 65 72 73 69 |western |Universi|
|00000130| 74 79 20 49 6e 73 74 69 | 74 75 74 65 20 66 6f 72 |ty Insti|tute for|
|00000140| 20 74 68 65 20 4c 65 61 | 72 6e 69 6e 67 20 53 63 | the Lea|rning Sc|
|00000150| 69 65 6e 63 65 73 0d 3b | 3b 20 41 6c 6c 20 52 69 |iences.;|; All Ri|
|00000160| 67 68 74 73 20 52 65 73 | 65 72 76 65 64 0d 3b 3b |ghts Res|erved.;;|
|00000170| 0d 3b 3b 20 61 75 74 68 | 6f 72 3a 20 4d 69 63 68 |.;; auth|or: Mich|
|00000180| 61 65 6c 20 53 2e 20 45 | 6e 67 62 65 72 0d 3b 3b |ael S. E|ngber.;;|
|00000190| 0d 3b 3b 20 55 74 69 6c | 69 74 69 65 73 20 66 6f |.;; Util|ities fo|
|000001a0| 72 20 63 72 65 61 74 69 | 6e 67 20 64 65 66 69 6e |r creati|ng defin|
|000001b0| 69 6e 69 74 69 6f 6e 20 | 70 72 6f 63 65 64 75 72 |inition |procedur|
|000001c0| 65 20 77 69 74 68 69 6e | 20 4d 43 4c 20 0d 3b 3b |e within| MCL .;;|
|000001d0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000001e0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000001f0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000200| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000210| 3b 3b 3b 3b 0d 0d 28 6f | 6f 75 2d 64 65 70 65 6e |;;;;..(o|ou-depen|
|00000220| 64 65 6e 63 69 65 73 20 | 3a 52 65 63 6f 72 64 73 |dencies |:Records|
|00000230| 2d 75 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |-u. | |
|00000240| 20 20 20 20 20 3a 52 65 | 73 6f 75 72 63 65 73 2d | :Re|sources-|
|00000250| 75 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |u. | |
|00000260| 20 20 20 20 3a 51 75 69 | 63 6b 44 72 61 77 2d 75 | :Qui|ckDraw-u|
|00000270| 29 0d 0d 28 65 78 70 6f | 72 74 20 27 28 64 65 66 |)..(expo|rt '(def|
|00000280| 2d 4d 44 45 46 20 4d 44 | 45 46 2d 6d 65 6e 75 20 |-MDEF MD|EF-menu |
|00000290| 4d 44 45 46 2d 69 6e 73 | 74 61 6c 6c 2d 64 65 66 |MDEF-ins|tall-def|
|000002a0| 70 72 6f 63 29 29 0d 0d | 3b 3b 3b 3b 3b 3b 3b 3b |proc))..|;;;;;;;;|
|000002b0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000002c0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000002d0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000002e0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 0d 0d |;;;;;;;;|;;;;;;..|
|000002f0| 20 28 65 76 61 6c 2d 77 | 68 65 6e 20 28 3a 63 6f | (eval-w|hen (:co|
|00000300| 6d 70 69 6c 65 2d 74 6f | 70 6c 65 76 65 6c 20 3a |mpile-to|plevel :|
|00000310| 6c 6f 61 64 2d 74 6f 70 | 6c 65 76 65 6c 20 3a 65 |load-top|level :e|
|00000320| 78 65 63 75 74 65 29 0d | 20 20 20 0d 20 20 20 28 |xecute).| . (|
|00000330| 64 65 66 76 61 72 20 2a | 64 65 66 70 72 6f 63 2d |defvar *|defproc-|
|00000340| 72 73 72 63 2d 66 69 6c | 65 2a 20 22 6f 6f 75 3a |rsrc-fil|e* "oou:|
|00000350| 77 6f 72 6b 2d 69 6e 2d | 70 72 6f 67 72 65 73 73 |work-in-|progress|
|00000360| 3b 64 65 66 70 72 6f 63 | 2e 72 73 72 63 22 29 0d |;defproc|.rsrc").|
|00000370| 20 20 20 28 64 65 66 63 | 6f 6e 73 74 61 6e 74 20 | (defc|onstant |
|00000380| 4a 4d 50 2d 69 6e 73 74 | 72 75 63 74 69 6f 6e 20 |JMP-inst|ruction |
|00000390| 23 78 34 45 46 39 29 0d | 20 20 20 0d 20 20 20 28 |#x4EF9).| . (|
|000003a0| 64 65 66 72 65 63 6f 72 | 64 20 28 66 61 6b 65 2d |defrecor|d (fake-|
|000003b0| 64 65 66 70 72 6f 63 20 | 3a 70 6f 69 6e 74 65 72 |defproc |:pointer|
|000003c0| 29 0d 20 20 20 20 20 28 | 6a 6d 70 49 6e 73 74 20 |). (|jmpInst |
|000003d0| 20 20 20 20 20 3a 77 6f | 72 64 29 0d 20 20 20 20 | :wo|rd). |
|000003e0| 20 28 64 65 66 70 72 6f | 63 2d 61 64 64 72 20 3a | (defpro|c-addr :|
|000003f0| 70 6f 69 6e 74 65 72 29 | 29 0d 20 20 20 0d 20 20 |pointer)|). . |
|00000400| 20 28 64 65 66 6d 61 63 | 72 6f 20 64 65 66 2d 4d | (defmac|ro def-M|
|00000410| 44 45 46 20 28 4d 44 45 | 46 2d 6e 61 6d 65 20 28 |DEF (MDE|F-name (|
|00000420| 26 72 65 73 74 20 61 72 | 67 6c 69 73 74 29 20 26 |&rest ar|glist) &|
|00000430| 62 6f 64 79 20 62 6f 64 | 79 29 0d 20 20 20 20 20 |body bod|y). |
|00000440| 60 28 70 72 6f 67 6e 0d | 20 20 20 20 20 20 20 20 |`(progn.| |
|00000450| 28 64 65 66 70 61 73 63 | 61 6c 20 2c 4d 44 45 46 |(defpasc|al ,MDEF|
|00000460| 2d 6e 61 6d 65 20 2c 61 | 72 67 6c 69 73 74 20 2c |-name ,a|rglist ,|
|00000470| 40 62 6f 64 79 29 0d 20 | 20 20 20 20 20 20 20 28 |@body). | (|
|00000480| 69 6e 73 74 61 6c 6c 2d | 64 65 66 70 72 6f 63 20 |install-|defproc |
|00000490| 22 4d 44 45 46 22 20 28 | 73 79 6d 62 6f 6c 2d 6e |"MDEF" (|symbol-n|
|000004a0| 61 6d 65 20 27 2c 4d 44 | 45 46 2d 6e 61 6d 65 29 |ame ',MD|EF-name)|
|000004b0| 20 2c 4d 44 45 46 2d 6e | 61 6d 65 29 29 29 0d 0d | ,MDEF-n|ame)))..|
|000004c0| 20 20 20 29 0d 0d 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b | )..;;|;;;;;;;;|
|000004d0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000004e0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000004f0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000500| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 0d 0d 28 64 |;;;;;;;;|;;;;..(d|
|00000510| 65 66 75 6e 20 69 6e 73 | 74 61 6c 6c 2d 64 65 66 |efun ins|tall-def|
|00000520| 70 72 6f 63 20 28 64 65 | 66 70 72 6f 63 2d 74 79 |proc (de|fproc-ty|
|00000530| 70 65 20 66 61 6b 65 2d | 64 65 66 70 72 6f 63 2d |pe fake-|defproc-|
|00000540| 69 64 2d 6f 72 2d 6e 61 | 6d 65 20 64 65 66 70 72 |id-or-na|me defpr|
|00000550| 6f 63 2d 61 64 64 72 29 | 0d 20 20 28 77 69 74 68 |oc-addr)|. (with|
|00000560| 2d 72 65 73 2d 66 69 6c | 65 20 28 2a 64 65 66 70 |-res-fil|e (*defp|
|00000570| 72 6f 63 2d 72 73 72 63 | 2d 66 69 6c 65 2a 20 3a |roc-rsrc|-file* :|
|00000580| 69 66 2d 6e 6f 74 2d 6f | 70 65 6e 20 3a 6c 65 61 |if-not-o|pen :lea|
|00000590| 76 65 2d 6f 70 65 6e 29 | 0d 20 20 20 20 28 6c 65 |ve-open)|. (le|
|000005a0| 74 20 28 28 64 65 66 70 | 72 6f 63 5f 68 20 28 67 |t ((defp|roc_h (g|
|000005b0| 65 74 2d 72 65 73 6f 75 | 72 63 65 20 64 65 66 70 |et-resou|rce defp|
|000005c0| 72 6f 63 2d 74 79 70 65 | 20 66 61 6b 65 2d 64 65 |roc-type| fake-de|
|000005d0| 66 70 72 6f 63 2d 69 64 | 2d 6f 72 2d 6e 61 6d 65 |fproc-id|-or-name|
|000005e0| 20 3a 65 72 72 6f 72 70 | 20 6e 69 6c 29 29 29 0d | :errorp| nil))).|
|000005f0| 20 20 20 20 20 20 28 77 | 68 65 6e 20 28 25 6e 75 | (w|hen (%nu|
|00000600| 6c 6c 2d 70 74 72 2d 70 | 20 64 65 66 70 72 6f 63 |ll-ptr-p| defproc|
|00000610| 5f 68 29 0d 20 20 20 20 | 20 20 20 20 28 73 65 74 |_h). | (set|
|00000620| 66 20 64 65 66 70 72 6f | 63 5f 68 20 28 23 5f 4e |f defpro|c_h (#_N|
|00000630| 65 77 48 61 6e 64 6c 65 | 20 28 72 6c 65 6e 67 74 |ewHandle| (rlengt|
|00000640| 68 20 3a 66 61 6b 65 2d | 64 65 66 70 72 6f 63 29 |h :fake-|defproc)|
|00000650| 29 29 0d 20 20 20 20 20 | 20 20 20 28 77 68 65 6e |)). | (when|
|00000660| 20 28 25 6e 75 6c 6c 2d | 70 74 72 2d 70 20 64 65 | (%null-|ptr-p de|
|00000670| 66 70 72 6f 63 5f 68 29 | 0d 20 20 20 20 20 20 20 |fproc_h)|. |
|00000680| 20 20 20 28 65 72 72 6f | 72 20 22 75 6e 61 62 6c | (erro|r "unabl|
|00000690| 65 20 74 6f 20 61 6c 6c | 6f 63 61 74 65 20 61 20 |e to all|ocate a |
|000006a0| 66 61 6b 65 20 64 65 66 | 70 72 6f 63 20 68 61 6e |fake def|proc han|
|000006b0| 64 6c 65 2e 22 29 29 0d | 20 20 20 20 20 20 20 20 |dle.")).| |
|000006c0| 28 65 74 79 70 65 63 61 | 73 65 20 66 61 6b 65 2d |(etypeca|se fake-|
|000006d0| 64 65 66 70 72 6f 63 2d | 69 64 2d 6f 72 2d 6e 61 |defproc-|id-or-na|
|000006e0| 6d 65 0d 20 20 20 20 20 | 20 20 20 20 20 28 73 74 |me. | (st|
|000006f0| 72 69 6e 67 20 20 28 77 | 69 74 68 2d 70 73 74 72 |ring (w|ith-pstr|
|00000700| 73 20 28 28 6e 61 6d 65 | 5f 70 20 66 61 6b 65 2d |s ((name|_p fake-|
|00000710| 64 65 66 70 72 6f 63 2d | 69 64 2d 6f 72 2d 6e 61 |defproc-|id-or-na|
|00000720| 6d 65 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 |me)). | |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 28 23 5f 41 64 64 | | (#_Add|
|00000740| 52 65 73 6f 75 72 63 65 | 20 64 65 66 70 72 6f 63 |Resource| defproc|
|00000750| 5f 68 20 64 65 66 70 72 | 6f 63 2d 74 79 70 65 20 |_h defpr|oc-type |
|00000760| 28 23 5f 55 6e 69 71 75 | 65 49 44 20 64 65 66 70 |(#_Uniqu|eID defp|
|00000770| 72 6f 63 2d 74 79 70 65 | 29 20 6e 61 6d 65 5f 70 |roc-type|) name_p|
|00000780| 29 29 29 0d 20 20 20 20 | 20 20 20 20 20 20 28 66 |))). | (f|
|00000790| 69 78 6e 75 6d 20 20 28 | 77 69 74 68 2d 70 73 74 |ixnum (|with-pst|
|000007a0| 72 73 20 28 28 6e 61 6d | 65 5f 70 20 22 66 61 6b |rs ((nam|e_p "fak|
|000007b0| 65 20 64 65 66 70 72 6f | 63 22 29 29 0d 20 20 20 |e defpro|c")). |
|000007c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000007d0| 20 20 28 23 5f 41 64 64 | 52 65 73 6f 75 72 63 65 | (#_Add|Resource|
|000007e0| 20 64 65 66 70 72 6f 63 | 5f 68 20 64 65 66 70 72 | defproc|_h defpr|
|000007f0| 6f 63 2d 74 79 70 65 20 | 66 61 6b 65 2d 64 65 66 |oc-type |fake-def|
|00000800| 70 72 6f 63 2d 69 64 2d | 6f 72 2d 6e 61 6d 65 20 |proc-id-|or-name |
|00000810| 6e 61 6d 65 5f 70 29 29 | 29 29 29 0d 20 20 20 20 |name_p))|))). |
|00000820| 20 20 28 77 69 74 68 2d | 64 65 72 65 66 65 72 65 | (with-|derefere|
|00000830| 6e 63 65 64 2d 68 61 6e | 64 6c 65 73 20 28 28 64 |nced-han|dles ((d|
|00000840| 65 66 70 72 6f 63 5f 70 | 20 64 65 66 70 72 6f 63 |efproc_p| defproc|
|00000850| 5f 68 29 29 0d 20 20 20 | 20 20 20 20 20 28 70 73 |_h)). | (ps|
|00000860| 65 74 20 64 65 66 70 72 | 6f 63 5f 70 20 3a 66 61 |et defpr|oc_p :fa|
|00000870| 6b 65 2d 64 65 66 70 72 | 6f 63 2e 6a 6d 70 49 6e |ke-defpr|oc.jmpIn|
|00000880| 73 74 20 20 20 20 20 20 | 4a 4d 50 2d 69 6e 73 74 |st |JMP-inst|
|00000890| 72 75 63 74 69 6f 6e 29 | 0d 20 20 20 20 20 20 20 |ruction)|. |
|000008a0| 20 28 70 73 65 74 20 64 | 65 66 70 72 6f 63 5f 70 | (pset d|efproc_p|
|000008b0| 20 3a 66 61 6b 65 2d 64 | 65 66 70 72 6f 63 2e 64 | :fake-d|efproc.d|
|000008c0| 65 66 70 72 6f 63 2d 61 | 64 64 72 20 64 65 66 70 |efproc-a|ddr defp|
|000008d0| 72 6f 63 2d 61 64 64 72 | 29 29 0d 20 20 20 20 20 |roc-addr|)). |
|000008e0| 20 64 65 66 70 72 6f 63 | 5f 68 29 29 29 0d 0d 0d | defproc|_h)))...|
|000008f0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000900| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000910| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000920| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000930| 3b 3b 3b 3b 3b 3b 0d 3b | 3b 20 63 75 72 72 65 6e |;;;;;;.;|; curren|
|00000940| 74 6c 79 2c 20 74 68 65 | 20 4d 43 4c 20 6d 65 6e |tly, the| MCL men|
|00000950| 75 20 63 6c 61 73 73 20 | 64 6f 65 73 6e 27 74 20 |u class |doesn't |
|00000960| 72 65 61 64 69 6c 79 20 | 6c 65 6e 64 20 69 74 73 |readily |lend its|
|00000970| 65 6c 66 20 74 6f 20 75 | 73 69 6e 67 0d 3b 3b 20 |elf to u|sing.;; |
|00000980| 63 75 73 74 6f 6d 20 4d | 44 45 46 73 2c 20 73 6f |custom M|DEFs, so|
|00000990| 20 4d 44 45 46 2d 6d 65 | 6e 75 20 69 73 20 70 72 | MDEF-me|nu is pr|
|000009a0| 6f 76 69 64 65 64 2e 0d | 0d 28 64 65 66 63 6c 61 |ovided..|.(defcla|
|000009b0| 73 73 20 4d 44 45 46 2d | 6d 65 6e 75 20 28 6d 65 |ss MDEF-|menu (me|
|000009c0| 6e 75 29 0d 20 20 28 28 | 4d 44 45 46 2d 64 65 66 |nu). ((|MDEF-def|
|000009d0| 70 61 73 63 61 6c 2d 73 | 79 6d 20 3a 69 6e 69 74 |pascal-s|ym :init|
|000009e0| 61 72 67 20 3a 4d 44 45 | 46 2d 64 65 66 70 61 73 |arg :MDE|F-defpas|
|000009f0| 63 61 6c 2d 73 79 6d 0d | 20 20 20 20 20 20 20 20 |cal-sym.| |
|00000a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|00000a10| 61 63 63 65 73 73 6f 72 | 20 4d 44 45 46 2d 64 65 |accessor| MDEF-de|
|00000a20| 66 70 61 73 63 61 6c 2d | 73 79 6d 29 29 0d 20 20 |fpascal-|sym)). |
|00000a30| 29 0d 0d 28 64 65 66 6d | 65 74 68 6f 64 20 6d 65 |)..(defm|ethod me|
|00000a40| 6e 75 2d 69 6e 73 74 61 | 6c 6c 20 28 28 6d 20 4d |nu-insta|ll ((m M|
|00000a50| 44 45 46 2d 6d 65 6e 75 | 29 29 0d 20 20 28 6c 65 |DEF-menu|)). (le|
|00000a60| 74 20 28 28 2a 6d 65 6e | 75 62 61 72 2d 66 72 6f |t ((*men|ubar-fro|
|00000a70| 7a 65 6e 2a 20 74 29 29 | 0d 20 20 20 20 28 63 61 |zen* t))|. (ca|
|00000a80| 6c 6c 2d 6e 65 78 74 2d | 6d 65 74 68 6f 64 29 0d |ll-next-|method).|
|00000a90| 20 20 20 20 28 4d 44 45 | 46 2d 69 6e 73 74 61 6c | (MDE|F-instal|
|00000aa0| 6c 2d 64 65 66 70 72 6f | 63 20 6d 29 29 0d 20 20 |l-defpro|c m)). |
|00000ab0| 28 64 72 61 77 2d 6d 65 | 6e 75 62 61 72 2d 69 66 |(draw-me|nubar-if|
|00000ac0| 29 0d 20 20 74 29 0d 0d | 28 64 65 66 6d 65 74 68 |). t)..|(defmeth|
|00000ad0| 6f 64 20 4d 44 45 46 2d | 69 6e 73 74 61 6c 6c 2d |od MDEF-|install-|
|00000ae0| 64 65 66 70 72 6f 63 20 | 28 28 6d 20 4d 44 45 46 |defproc |((m MDEF|
|00000af0| 2d 6d 65 6e 75 29 29 0d | 20 20 28 77 69 74 68 2d |-menu)).| (with-|
|00000b00| 6d 61 63 70 74 72 73 20 | 28 28 64 65 66 70 72 6f |macptrs |((defpro|
|00000b10| 63 2d 61 64 64 72 20 28 | 73 79 6d 62 6f 6c 2d 76 |c-addr (|symbol-v|
|00000b20| 61 6c 75 65 20 28 4d 44 | 45 46 2d 64 65 66 70 61 |alue (MD|EF-defpa|
|00000b30| 73 63 61 6c 2d 73 79 6d | 20 6d 29 29 29 0d 20 20 |scal-sym| m))). |
|00000b40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00000b50| 64 65 66 70 72 6f 63 5f | 68 20 28 69 6e 73 74 61 |defproc_|h (insta|
|00000b60| 6c 6c 2d 64 65 66 70 72 | 6f 63 20 22 4d 44 45 46 |ll-defpr|oc "MDEF|
|00000b70| 22 20 28 73 79 6d 62 6f | 6c 2d 6e 61 6d 65 20 28 |" (symbo|l-name (|
|00000b80| 4d 44 45 46 2d 64 65 66 | 70 61 73 63 61 6c 2d 73 |MDEF-def|pascal-s|
|00000b90| 79 6d 20 6d 29 29 20 64 | 65 66 70 72 6f 63 2d 61 |ym m)) d|efproc-a|
|00000ba0| 64 64 72 29 29 0d 20 20 | 20 20 20 20 20 20 20 20 |ddr)). | |
|00000bb0| 20 20 20 20 20 20 20 28 | 6d 65 6e 75 5f 68 20 28 | (|menu_h (|
|00000bc0| 6d 65 6e 75 2d 68 61 6e | 64 6c 65 20 6d 29 29 29 |menu-han|dle m)))|
|00000bd0| 0d 20 20 20 20 28 68 73 | 65 74 20 6d 65 6e 75 5f |. (hs|et menu_|
|00000be0| 68 20 3a 4d 65 6e 75 49 | 6e 66 6f 2e 6d 65 6e 75 |h :MenuI|nfo.menu|
|00000bf0| 50 72 6f 63 20 64 65 66 | 70 72 6f 63 5f 68 29 0d |Proc def|proc_h).|
|00000c00| 20 20 20 20 28 77 68 65 | 6e 20 28 6d 65 6e 75 2d | (whe|n (menu-|
|00000c10| 69 6e 73 74 61 6c 6c 65 | 64 2d 70 20 6d 29 0d 20 |installe|d-p m). |
|00000c20| 20 20 20 20 20 28 23 5f | 43 61 6c 63 4d 65 6e 75 | (#_|CalcMenu|
|00000c30| 53 69 7a 65 20 6d 65 6e | 75 5f 68 29 29 29 29 0d |Size men|u_h)))).|
|00000c40| 0d 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |.;;;;;;;|;;;;;;;;|
|00000c50| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000c60| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000c70| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000c80| 3b 3b 3b 3b 3b 3b 3b 0d | 0d 23 7c 0d 0d 0d 28 64 |;;;;;;;.|.#|...(d|
|00000c90| 65 66 63 6c 61 73 73 20 | 63 61 72 64 2d 73 74 61 |efclass |card-sta|
|00000ca0| 63 6b 2d 6d 65 6e 75 20 | 28 4d 44 45 46 2d 6d 65 |ck-menu |(MDEF-me|
|00000cb0| 6e 75 29 0d 20 20 28 28 | 63 61 72 64 2d 73 69 7a |nu). ((|card-siz|
|00000cc0| 65 20 20 20 3a 69 6e 69 | 74 61 72 67 20 3a 63 61 |e :ini|targ :ca|
|00000cd0| 72 64 2d 73 69 7a 65 0d | 20 20 20 20 20 20 20 20 |rd-size.| |
|00000ce0| 20 20 20 20 20 20 20 20 | 3a 61 63 63 65 73 73 6f | |:accesso|
|00000cf0| 72 20 63 61 72 64 2d 73 | 69 7a 65 29 0d 20 20 20 |r card-s|ize). |
|00000d00| 28 6d 61 78 2d 76 69 73 | 20 20 20 20 20 3a 69 6e |(max-vis| :in|
|00000d10| 69 74 61 72 67 20 3a 6d | 61 78 2d 76 69 73 0d 20 |itarg :m|ax-vis. |
|00000d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|00000d30| 61 63 63 65 73 73 6f 72 | 20 6d 61 78 2d 76 69 73 |accessor| max-vis|
|00000d40| 29 0d 20 20 20 28 64 68 | 20 20 20 20 20 20 20 20 |). (dh| |
|00000d50| 20 20 3a 69 6e 69 74 61 | 72 67 20 3a 64 68 0d 20 | :inita|rg :dh. |
|00000d60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|00000d70| 61 63 63 65 73 73 6f 72 | 20 64 68 29 0d 20 20 20 |accessor| dh). |
|00000d80| 28 64 76 20 20 20 20 20 | 20 20 20 20 20 3a 69 6e |(dv | :in|
|00000d90| 69 74 61 72 67 20 3a 64 | 76 0d 20 20 20 20 20 20 |itarg :d|v. |
|00000da0| 20 20 20 20 20 20 20 20 | 20 20 3a 61 63 63 65 73 | | :acces|
|00000db0| 73 6f 72 20 64 76 29 0d | 20 20 20 28 6c 2d 72 65 |sor dv).| (l-re|
|00000dc0| 67 69 6f 6e 20 20 20 20 | 3a 61 63 63 65 73 73 6f |gion |:accesso|
|00000dd0| 72 20 6c 2d 72 65 67 69 | 6f 6e 29 0d 20 20 20 28 |r l-regi|on). (|
|00000de0| 74 63 2d 74 6f 70 4c 65 | 66 74 20 20 3a 61 63 63 |tc-topLe|ft :acc|
|00000df0| 65 73 73 6f 72 20 74 63 | 2d 74 6f 70 4c 65 66 74 |essor tc|-topLeft|
|00000e00| 29 0d 20 20 20 0d 20 20 | 20 29 0d 20 20 28 3a 64 |). . | ). (:d|
|00000e10| 65 66 61 75 6c 74 2d 69 | 6e 69 74 61 72 67 73 0d |efault-i|nitargs.|
|00000e20| 20 20 20 20 3a 4d 44 45 | 46 2d 64 65 66 70 61 73 | :MDE|F-defpas|
|00000e30| 63 61 6c 2d 73 79 6d 20 | 27 63 61 72 64 2d 73 74 |cal-sym |'card-st|
|00000e40| 61 63 6b 2d 4d 44 45 46 | 0d 20 20 20 20 3a 63 61 |ack-MDEF|. :ca|
|00000e50| 72 64 2d 73 69 7a 65 20 | 23 40 28 32 30 30 20 31 |rd-size |#@(200 1|
|00000e60| 30 30 29 0d 20 20 20 20 | 3a 6d 61 78 2d 76 69 73 |00). |:max-vis|
|00000e70| 20 6e 69 6c 0d 20 20 20 | 20 3a 64 68 20 2d 32 30 | nil. | :dh -20|
|00000e80| 0d 20 20 20 20 3a 64 76 | 20 2d 32 30 0d 20 20 20 |. :dv| -20. |
|00000e90| 20 29 0d 20 20 29 0d 0d | 0d 28 64 65 66 6d 65 74 | ). )..|.(defmet|
|00000ea0| 68 6f 64 20 6d 65 6e 75 | 2d 69 6e 73 74 61 6c 6c |hod menu|-install|
|00000eb0| 20 3a 61 66 74 65 72 20 | 28 28 6d 20 4d 44 45 46 | :after |((m MDEF|
|00000ec0| 2d 6d 65 6e 75 29 29 0d | 20 20 28 73 65 74 66 20 |-menu)).| (setf |
|00000ed0| 28 6c 2d 72 65 67 69 6f | 6e 20 6d 29 20 28 23 5f |(l-regio|n m) (#_|
|00000ee0| 4e 65 77 52 67 6e 29 29 | 0d 20 20 28 63 61 72 64 |NewRgn))|. (card|
|00000ef0| 2d 73 74 61 63 6b 2d 69 | 6e 69 74 20 6d 29 29 0d |-stack-i|nit m)).|
|00000f00| 0d 28 64 65 66 6d 65 74 | 68 6f 64 20 6d 65 6e 75 |.(defmet|hod menu|
|00000f10| 2d 64 65 69 6e 73 74 61 | 6c 6c 20 3a 61 66 74 65 |-deinsta|ll :afte|
|00000f20| 72 20 28 28 6d 20 4d 44 | 45 46 2d 6d 65 6e 75 29 |r ((m MD|EF-menu)|
|00000f30| 29 0d 20 20 28 23 5f 44 | 69 73 70 6f 73 65 52 67 |). (#_D|isposeRg|
|00000f40| 6e 20 28 6c 2d 72 65 67 | 69 6f 6e 20 6d 29 29 0d |n (l-reg|ion m)).|
|00000f50| 20 20 28 73 6c 6f 74 2d | 6d 61 6b 75 6e 62 6f 75 | (slot-|makunbou|
|00000f60| 6e 64 20 6d 20 27 6c 2d | 72 65 67 69 6f 6e 29 29 |nd m 'l-|region))|
|00000f70| 0d 0d 28 64 65 66 6d 65 | 74 68 6f 64 20 76 69 73 |..(defme|thod vis|
|00000f80| 2d 63 6f 75 6e 74 20 28 | 28 6d 20 4d 44 45 46 2d |-count (|(m MDEF-|
|00000f90| 6d 65 6e 75 29 29 0d 20 | 20 28 6d 69 6e 20 28 6f |menu)). | (min (o|
|00000fa0| 72 20 28 6d 61 78 2d 76 | 69 73 20 6d 29 20 6d 6f |r (max-v|is m) mo|
|00000fb0| 73 74 2d 70 6f 73 69 74 | 69 76 65 2d 66 69 78 6e |st-posit|ive-fixn|
|00000fc0| 75 6d 29 20 28 6c 65 6e | 67 74 68 20 28 6d 65 6e |um) (len|gth (men|
|00000fd0| 75 2d 69 74 65 6d 73 20 | 6d 29 29 29 29 0d 0d 28 |u-items |m))))..(|
|00000fe0| 64 65 66 6d 65 74 68 6f | 64 20 63 61 72 64 2d 73 |defmetho|d card-s|
|00000ff0| 74 61 63 6b 2d 69 6e 69 | 74 20 28 28 6d 20 4d 44 |tack-ini|t ((m MD|
|00001000| 45 46 2d 6d 65 6e 75 29 | 29 0d 20 20 28 63 61 72 |EF-menu)|). (car|
|00001010| 64 2d 73 74 61 63 6b 2d | 69 6e 69 74 2d 6c 2d 72 |d-stack-|init-l-r|
|00001020| 65 67 69 6f 6e 20 6d 29 | 0d 20 20 28 63 61 72 64 |egion m)|. (card|
|00001030| 2d 73 74 61 63 6b 2d 69 | 6e 69 74 2d 74 63 2d 74 |-stack-i|nit-tc-t|
|00001040| 6f 70 4c 65 66 74 20 6d | 29 29 0d 0d 28 64 65 66 |opLeft m|))..(def|
|00001050| 6d 65 74 68 6f 64 20 63 | 61 72 64 2d 73 74 61 63 |method c|ard-stac|
|00001060| 6b 2d 69 6e 69 74 2d 74 | 63 2d 74 6f 70 4c 65 66 |k-init-t|c-topLef|
|00001070| 74 20 28 28 6d 20 4d 44 | 45 46 2d 6d 65 6e 75 29 |t ((m MD|EF-menu)|
|00001080| 29 20 0d 20 20 28 73 65 | 74 66 20 28 74 63 2d 74 |) . (se|tf (tc-t|
|00001090| 6f 70 4c 65 66 74 20 6d | 29 0d 20 20 20 20 20 20 |opLeft m|). |
|000010a0| 20 20 28 77 69 74 68 2d | 6d 61 63 70 74 72 73 20 | (with-|macptrs |
|000010b0| 28 28 6d 65 6e 75 5f 68 | 20 28 6d 65 6e 75 2d 68 |((menu_h| (menu-h|
|000010c0| 61 6e 64 6c 65 20 6d 29 | 29 29 0d 20 20 20 20 20 |andle m)|)). |
|000010d0| 20 20 20 20 20 28 69 66 | 20 28 70 6c 75 73 70 20 | (if| (plusp |
|000010e0| 28 64 76 20 6d 29 29 0d | 20 20 20 20 20 20 20 20 |(dv m)).| |
|000010f0| 20 20 20 20 28 69 66 20 | 28 70 6c 75 73 70 20 28 | (if |(plusp (|
|00001100| 64 68 20 6d 29 29 0d 20 | 20 20 20 20 20 20 20 20 |dh m)). | |
|00001110| 20 20 20 20 20 23 40 28 | 30 20 30 29 0d 20 20 20 | #@(|0 0). |
|00001120| 20 20 20 20 20 20 20 20 | 20 20 20 28 6d 61 6b 65 | | (make|
|00001130| 2d 70 6f 69 6e 74 20 28 | 2d 20 28 68 72 65 66 20 |-point (|- (href |
|00001140| 6d 65 6e 75 5f 68 20 3a | 4d 65 6e 75 49 6e 66 6f |menu_h :|MenuInfo|
|00001150| 2e 6d 65 6e 75 57 69 64 | 74 68 29 20 28 70 6f 69 |.menuWid|th) (poi|
|00001160| 6e 74 2d 68 20 28 63 61 | 72 64 2d 73 69 7a 65 20 |nt-h (ca|rd-size |
|00001170| 6d 29 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 |m))). | |
|00001180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 30 | | 0|
|00001190| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |)). | (|
|000011a0| 69 66 20 28 70 6c 75 73 | 70 20 28 64 68 20 6d 29 |if (plus|p (dh m)|
|000011b0| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|000011c0| 28 6d 61 6b 65 2d 70 6f | 69 6e 74 20 30 0d 20 20 |(make-po|int 0. |
|000011d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011e0| 20 20 20 20 20 20 20 20 | 28 2d 20 28 68 72 65 66 | |(- (href|
|000011f0| 20 6d 65 6e 75 5f 68 20 | 3a 4d 65 6e 75 49 6e 66 | menu_h |:MenuInf|
|00001200| 6f 2e 6d 65 6e 75 48 65 | 69 67 68 74 29 20 28 70 |o.menuHe|ight) (p|
|00001210| 6f 69 6e 74 2d 76 20 28 | 63 61 72 64 2d 73 69 7a |oint-v (|card-siz|
|00001220| 65 20 6d 29 29 29 29 0d | 20 20 20 20 20 20 20 20 |e m)))).| |
|00001230| 20 20 20 20 20 20 28 6d | 61 6b 65 2d 70 6f 69 6e | (m|ake-poin|
|00001240| 74 20 28 2d 20 28 68 72 | 65 66 20 6d 65 6e 75 5f |t (- (hr|ef menu_|
|00001250| 68 20 3a 4d 65 6e 75 49 | 6e 66 6f 2e 6d 65 6e 75 |h :MenuI|nfo.menu|
|00001260| 57 69 64 74 68 29 20 20 | 28 70 6f 69 6e 74 2d 68 |Width) |(point-h|
|00001270| 20 28 63 61 72 64 2d 73 | 69 7a 65 20 6d 29 29 29 | (card-s|ize m)))|
|00001280| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001290| 20 20 20 20 20 20 20 20 | 20 20 20 28 2d 20 28 68 | | (- (h|
|000012a0| 72 65 66 20 6d 65 6e 75 | 5f 68 20 3a 4d 65 6e 75 |ref menu|_h :Menu|
|000012b0| 49 6e 66 6f 2e 6d 65 6e | 75 48 65 69 67 68 74 29 |Info.men|uHeight)|
|000012c0| 20 28 70 6f 69 6e 74 2d | 76 20 28 63 61 72 64 2d | (point-|v (card-|
|000012d0| 73 69 7a 65 20 6d 29 29 | 29 29 0d 20 20 20 20 20 |size m))|)). |
|000012e0| 20 20 20 20 20 20 20 20 | 20 29 29 29 29 29 0d 0d | | )))))..|
|000012f0| 28 64 65 66 6d 65 74 68 | 6f 64 20 63 61 72 64 2d |(defmeth|od card-|
|00001300| 73 74 61 63 6b 2d 69 6e | 69 74 2d 6c 2d 72 65 67 |stack-in|it-l-reg|
|00001310| 69 6f 6e 20 28 28 6d 20 | 4d 44 45 46 2d 6d 65 6e |ion ((m |MDEF-men|
|00001320| 75 29 29 0d 20 20 28 72 | 6c 65 74 20 28 28 72 20 |u)). (r|let ((r |
|00001330| 3a 52 65 63 74 0d 20 20 | 20 20 20 20 20 20 20 20 |:Rect. | |
|00001340| 20 20 3a 74 6f 70 4c 65 | 66 74 20 23 40 28 30 20 | :topLe|ft #@(0 |
|00001350| 30 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 3a |0). | :|
|00001360| 62 6f 74 52 69 67 68 74 | 20 28 63 61 72 64 2d 73 |botRight| (card-s|
|00001370| 69 7a 65 20 6d 29 29 29 | 0d 20 20 20 20 28 77 69 |ize m)))|. (wi|
|00001380| 74 68 2d 6d 61 63 70 74 | 72 73 20 28 28 72 67 6e |th-macpt|rs ((rgn|
|00001390| 2d 61 20 28 6c 2d 72 65 | 67 69 6f 6e 20 6d 29 29 |-a (l-re|gion m))|
|000013a0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000013b0| 20 20 20 20 28 72 67 6e | 2d 62 20 28 23 5f 4e 65 | (rgn|-b (#_Ne|
|000013c0| 77 52 67 6e 29 29 29 0d | 20 20 20 20 20 20 28 23 |wRgn))).| (#|
|000013d0| 5f 52 65 63 74 52 67 6e | 20 72 67 6e 2d 61 20 72 |_RectRgn| rgn-a r|
|000013e0| 29 0d 20 20 20 20 20 20 | 28 23 5f 4f 66 66 73 65 |). |(#_Offse|
|000013f0| 74 52 65 63 74 20 72 20 | 28 2b 20 28 64 68 20 6d |tRect r |(+ (dh m|
|00001400| 29 20 28 73 69 67 6e 75 | 6d 20 28 64 68 20 6d 29 |) (signu|m (dh m)|
|00001410| 29 29 20 28 2b 20 28 64 | 76 20 6d 29 20 28 73 69 |)) (+ (d|v m) (si|
|00001420| 67 6e 75 6d 20 28 64 76 | 20 6d 29 29 29 29 0d 20 |gnum (dv| m)))). |
|00001430| 20 20 20 20 20 28 23 5f | 52 65 63 74 52 67 6e 20 | (#_|RectRgn |
|00001440| 72 67 6e 2d 62 20 72 29 | 0d 20 20 20 20 20 20 28 |rgn-b r)|. (|
|00001450| 23 5f 44 69 66 66 52 67 | 6e 20 72 67 6e 2d 62 20 |#_DiffRg|n rgn-b |
|00001460| 72 67 6e 2d 61 20 72 67 | 6e 2d 61 29 0d 20 20 20 |rgn-a rg|n-a). |
|00001470| 20 20 20 28 23 5f 44 69 | 73 70 6f 73 65 52 67 6e | (#_Di|sposeRgn|
|00001480| 20 72 67 6e 2d 62 29 29 | 29 29 0d 0d 28 64 65 66 | rgn-b))|))..(def|
|00001490| 6d 65 74 68 6f 64 20 63 | 61 72 64 2d 73 74 61 63 |method c|ard-stac|
|000014a0| 6b 2d 63 61 72 64 2d 6f | 66 66 73 65 74 20 28 28 |k-card-o|ffset ((|
|000014b0| 6d 20 4d 44 45 46 2d 6d | 65 6e 75 29 20 69 74 65 |m MDEF-m|enu) ite|
|000014c0| 6d 2d 6e 75 6d 29 0d 20 | 20 28 61 64 64 2d 70 6f |m-num). | (add-po|
|000014d0| 69 6e 74 73 20 28 74 63 | 2d 74 6f 70 4c 65 66 74 |ints (tc|-topLeft|
|000014e0| 20 6d 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 | m). | |
|000014f0| 20 20 28 6d 61 6b 65 2d | 70 6f 69 6e 74 20 28 2a | (make-|point (*|
|00001500| 20 28 31 2d 20 69 74 65 | 6d 2d 6e 75 6d 29 20 28 | (1- ite|m-num) (|
|00001510| 64 68 20 6d 29 29 20 28 | 2a 20 28 31 2d 20 69 74 |dh m)) (|* (1- it|
|00001520| 65 6d 2d 6e 75 6d 29 20 | 28 64 76 20 6d 29 29 29 |em-num) |(dv m)))|
|00001530| 29 29 0d 0d 28 64 65 66 | 6d 65 74 68 6f 64 20 63 |))..(def|method c|
|00001540| 61 72 64 2d 73 74 61 63 | 6b 2d 69 6e 76 65 72 74 |ard-stac|k-invert|
|00001550| 2d 69 74 65 6d 20 28 28 | 6d 20 4d 44 45 46 2d 6d |-item ((|m MDEF-m|
|00001560| 65 6e 75 29 20 6d 65 6e | 75 52 65 63 74 20 69 74 |enu) men|uRect it|
|00001570| 65 6d 2d 6e 75 6d 29 0d | 20 20 28 6c 65 74 20 28 |em-num).| (let (|
|00001580| 28 66 69 72 73 74 2d 63 | 61 72 64 2d 6e 75 6d 20 |(first-c|ard-num |
|00001590| 31 29 29 0d 20 20 20 20 | 28 69 66 20 28 3d 20 69 |1)). |(if (= i|
|000015a0| 74 65 6d 2d 6e 75 6d 20 | 66 69 72 73 74 2d 63 61 |tem-num |first-ca|
|000015b0| 72 64 2d 6e 75 6d 29 0d | 20 20 20 20 20 20 28 6c |rd-num).| (l|
|000015c0| 65 74 20 28 28 74 6f 70 | 4c 65 66 74 20 28 61 64 |et ((top|Left (ad|
|000015d0| 64 2d 70 6f 69 6e 74 73 | 20 28 70 72 65 66 20 6d |d-points| (pref m|
|000015e0| 65 6e 75 52 65 63 74 20 | 3a 52 65 63 74 2e 74 6f |enuRect |:Rect.to|
|000015f0| 70 4c 65 66 74 29 20 28 | 74 63 2d 74 6f 70 4c 65 |pLeft) (|tc-topLe|
|00001600| 66 74 20 6d 29 29 29 29 | 0d 20 20 20 20 20 20 20 |ft m))))|. |
|00001610| 20 28 72 6c 65 74 20 28 | 28 72 20 3a 52 65 63 74 | (rlet (|(r :Rect|
|00001620| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001630| 20 20 20 3a 74 6f 70 4c | 65 66 74 20 74 6f 70 4c | :topL|eft topL|
|00001640| 65 66 74 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |eft. | |
|00001650| 20 20 20 20 20 20 3a 62 | 6f 74 52 69 67 68 74 20 | :b|otRight |
|00001660| 28 61 64 64 2d 70 6f 69 | 6e 74 73 20 74 6f 70 4c |(add-poi|nts topL|
|00001670| 65 66 74 20 28 63 61 72 | 64 2d 73 69 7a 65 20 6d |eft (car|d-size m|
|00001680| 29 29 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 28 |)))). | (|
|00001690| 23 5f 49 6e 76 65 72 74 | 52 65 63 74 20 72 29 29 |#_Invert|Rect r))|
|000016a0| 29 0d 20 20 20 20 20 20 | 28 6c 65 74 20 28 28 74 |). |(let ((t|
|000016b0| 6f 70 4c 65 66 74 20 28 | 61 64 64 2d 70 6f 69 6e |opLeft (|add-poin|
|000016c0| 74 73 20 28 70 72 65 66 | 20 6d 65 6e 75 52 65 63 |ts (pref| menuRec|
|000016d0| 74 20 3a 52 65 63 74 2e | 74 6f 70 4c 65 66 74 29 |t :Rect.|topLeft)|
|000016e0| 20 28 63 61 72 64 2d 73 | 74 61 63 6b 2d 63 61 72 | (card-s|tack-car|
|000016f0| 64 2d 6f 66 66 73 65 74 | 20 6d 20 69 74 65 6d 2d |d-offset| m item-|
|00001700| 6e 75 6d 29 29 29 29 0d | 20 20 20 20 20 20 20 20 |num)))).| |
|00001710| 28 77 69 74 68 2d 6d 61 | 63 70 74 72 73 20 28 28 |(with-ma|cptrs ((|
|00001720| 6c 2d 72 67 6e 20 28 6c | 2d 72 65 67 69 6f 6e 20 |l-rgn (l|-region |
|00001730| 6d 29 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 28 |m))). | (|
|00001740| 6d 6f 76 65 2d 72 65 67 | 69 6f 6e 2d 74 6f 20 6c |move-reg|ion-to l|
|00001750| 2d 72 67 6e 20 74 6f 70 | 4c 65 66 74 29 0d 20 20 |-rgn top|Left). |
|00001760| 20 20 20 20 20 20 20 20 | 28 23 5f 49 6e 76 65 72 | |(#_Inver|
|00001770| 74 52 67 6e 20 6c 2d 72 | 67 6e 29 29 29 29 29 29 |tRgn l-r|gn))))))|
|00001780| 0d 0d 28 64 65 66 6d 65 | 74 68 6f 64 20 63 61 72 |..(defme|thod car|
|00001790| 64 2d 73 74 61 63 6b 2d | 66 69 6e 64 2d 69 74 65 |d-stack-|find-ite|
|000017a0| 6d 20 28 28 6d 20 4d 44 | 45 46 2d 6d 65 6e 75 29 |m ((m MD|EF-menu)|
|000017b0| 20 6d 65 6e 75 52 65 63 | 74 20 70 74 29 0d 20 20 | menuRec|t pt). |
|000017c0| 20 20 28 6c 65 74 20 28 | 28 66 69 72 73 74 2d 63 | (let (|(first-c|
|000017d0| 61 72 64 2d 6e 75 6d 20 | 31 29 29 0d 20 20 20 20 |ard-num |1)). |
|000017e0| 20 20 28 6c 65 74 20 28 | 28 74 6f 70 4c 65 66 74 | (let (|(topLeft|
|000017f0| 20 28 61 64 64 2d 70 6f | 69 6e 74 73 20 28 70 72 | (add-po|ints (pr|
|00001800| 65 66 20 6d 65 6e 75 52 | 65 63 74 20 3a 52 65 63 |ef menuR|ect :Rec|
|00001810| 74 2e 74 6f 70 4c 65 66 | 74 29 20 28 74 63 2d 74 |t.topLef|t) (tc-t|
|00001820| 6f 70 4c 65 66 74 20 6d | 29 29 29 29 0d 20 20 20 |opLeft m|)))). |
|00001830| 20 20 20 20 20 28 72 6c | 65 74 20 28 28 72 20 3a | (rl|et ((r :|
|00001840| 52 65 63 74 0d 20 20 20 | 20 20 20 20 20 20 20 20 |Rect. | |
|00001850| 20 20 20 20 20 20 20 3a | 74 6f 70 4c 65 66 74 20 | :|topLeft |
|00001860| 74 6f 70 4c 65 66 74 0d | 20 20 20 20 20 20 20 20 |topLeft.| |
|00001870| 20 20 20 20 20 20 20 20 | 20 20 3a 62 6f 74 52 69 | | :botRi|
|00001880| 67 68 74 20 28 61 64 64 | 2d 70 6f 69 6e 74 73 20 |ght (add|-points |
|00001890| 74 6f 70 4c 65 66 74 20 | 28 63 61 72 64 2d 73 69 |topLeft |(card-si|
|000018a0| 7a 65 20 6d 29 29 29 29 | 0d 20 20 20 20 20 20 20 |ze m))))|. |
|000018b0| 20 20 20 28 64 6f 74 69 | 6d 65 73 20 28 69 20 28 | (doti|mes (i (|
|000018c0| 76 69 73 2d 63 6f 75 6e | 74 20 6d 29 20 30 29 0d |vis-coun|t m) 0).|
|000018d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 77 68 65 | | (whe|
|000018e0| 6e 20 28 23 5f 50 74 49 | 6e 52 65 63 74 20 70 74 |n (#_PtI|nRect pt|
|000018f0| 20 72 29 20 28 72 65 74 | 75 72 6e 20 28 2b 20 66 | r) (ret|urn (+ f|
|00001900| 69 72 73 74 2d 63 61 72 | 64 2d 6e 75 6d 20 69 29 |irst-car|d-num i)|
|00001910| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |)). | (|
|00001920| 23 5f 4f 66 66 73 65 74 | 52 65 63 74 20 72 20 28 |#_Offset|Rect r (|
|00001930| 64 68 20 6d 29 20 28 64 | 76 20 6d 29 29 29 29 29 |dh m) (d|v m)))))|
|00001940| 29 29 0d 0d 28 64 65 66 | 6d 65 74 68 6f 64 20 63 |))..(def|method c|
|00001950| 61 72 64 2d 73 74 61 63 | 6b 2d 6d 53 69 7a 65 4d |ard-stac|k-mSizeM|
|00001960| 73 67 20 28 28 6d 20 63 | 61 72 64 2d 73 74 61 63 |sg ((m c|ard-stac|
|00001970| 6b 2d 6d 65 6e 75 29 29 | 0d 20 20 28 77 69 74 68 |k-menu))|. (with|
|00001980| 2d 6d 61 63 70 74 72 73 | 20 28 28 6d 65 6e 75 5f |-macptrs| ((menu_|
|00001990| 68 20 28 6d 65 6e 75 2d | 68 61 6e 64 6c 65 20 6d |h (menu-|handle m|
|000019a0| 29 29 29 0d 20 20 20 20 | 28 6c 65 74 20 28 28 6e |))). |(let ((n|
|000019b0| 20 28 31 2d 20 28 6c 65 | 6e 67 74 68 20 28 6d 65 | (1- (le|ngth (me|
|000019c0| 6e 75 2d 69 74 65 6d 73 | 20 6d 29 29 29 29 29 0d |nu-items| m))))).|
|000019d0| 20 20 20 20 20 20 28 68 | 73 65 74 20 6d 65 6e 75 | (h|set menu|
|000019e0| 5f 68 20 3a 4d 65 6e 75 | 49 6e 66 6f 2e 6d 65 6e |_h :Menu|Info.men|
|000019f0| 75 57 69 64 74 68 20 20 | 28 2b 20 28 2a 20 28 61 |uWidth |(+ (* (a|
|00001a00| 62 73 20 28 64 68 20 6d | 29 29 20 6e 29 20 28 70 |bs (dh m|)) n) (p|
|00001a10| 6f 69 6e 74 2d 68 20 28 | 63 61 72 64 2d 73 69 7a |oint-h (|card-siz|
|00001a20| 65 20 6d 29 29 29 29 0d | 20 20 20 20 20 20 28 68 |e m)))).| (h|
|00001a30| 73 65 74 20 6d 65 6e 75 | 5f 68 20 3a 4d 65 6e 75 |set menu|_h :Menu|
|00001a40| 49 6e 66 6f 2e 6d 65 6e | 75 48 65 69 67 68 74 20 |Info.men|uHeight |
|00001a50| 28 2b 20 28 2a 20 28 61 | 62 73 20 28 64 76 20 6d |(+ (* (a|bs (dv m|
|00001a60| 29 29 20 6e 29 20 28 70 | 6f 69 6e 74 2d 76 20 28 |)) n) (p|oint-v (|
|00001a70| 63 61 72 64 2d 73 69 7a | 65 20 6d 29 29 29 29 29 |card-siz|e m)))))|
|00001a80| 29 29 0d 0d 28 64 65 66 | 6d 65 74 68 6f 64 20 63 |))..(def|method c|
|00001a90| 61 72 64 2d 73 74 61 63 | 6b 2d 6d 43 68 6f 6f 73 |ard-stac|k-mChoos|
|00001aa0| 65 4d 73 67 20 28 28 6d | 20 63 61 72 64 2d 73 74 |eMsg ((m| card-st|
|00001ab0| 61 63 6b 2d 6d 65 6e 75 | 29 20 6d 65 6e 75 52 65 |ack-menu|) menuRe|
|00001ac0| 63 74 20 68 69 74 2d 70 | 6f 69 6e 74 20 6c 61 73 |ct hit-p|oint las|
|00001ad0| 74 2d 69 74 65 6d 2d 6e | 75 6d 29 0d 20 20 28 6c |t-item-n|um). (l|
|00001ae0| 65 74 20 28 28 69 6e 2d | 69 74 65 6d 2d 6e 75 6d |et ((in-|item-num|
|00001af0| 20 28 63 61 72 64 2d 73 | 74 61 63 6b 2d 66 69 6e | (card-s|tack-fin|
|00001b00| 64 2d 69 74 65 6d 20 6d | 20 6d 65 6e 75 52 65 63 |d-item m| menuRec|
|00001b10| 74 20 68 69 74 2d 70 6f | 69 6e 74 29 29 29 0d 20 |t hit-po|int))). |
|00001b20| 20 20 20 0d 20 20 20 20 | 28 75 6e 6c 65 73 73 20 | . |(unless |
|00001b30| 28 3d 20 6c 61 73 74 2d | 69 74 65 6d 2d 6e 75 6d |(= last-|item-num|
|00001b40| 20 69 6e 2d 69 74 65 6d | 2d 6e 75 6d 29 0d 20 20 | in-item|-num). |
|00001b50| 20 20 20 20 28 77 68 65 | 6e 20 28 70 6c 75 73 70 | (whe|n (plusp|
|00001b60| 20 6c 61 73 74 2d 69 74 | 65 6d 2d 6e 75 6d 29 0d | last-it|em-num).|
|00001b70| 20 20 20 20 20 20 20 20 | 28 63 61 72 64 2d 73 74 | |(card-st|
|00001b80| 61 63 6b 2d 69 6e 76 65 | 72 74 2d 69 74 65 6d 20 |ack-inve|rt-item |
|00001b90| 6d 20 6d 65 6e 75 52 65 | 63 74 20 6c 61 73 74 2d |m menuRe|ct last-|
|00001ba0| 69 74 65 6d 2d 6e 75 6d | 29 29 0d 20 20 20 20 20 |item-num|)). |
|00001bb0| 20 28 77 68 65 6e 20 28 | 70 6c 75 73 70 20 69 6e | (when (|plusp in|
|00001bc0| 2d 69 74 65 6d 2d 6e 75 | 6d 29 0d 20 20 20 20 20 |-item-nu|m). |
|00001bd0| 20 20 20 28 63 61 72 64 | 2d 73 74 61 63 6b 2d 69 | (card|-stack-i|
|00001be0| 6e 76 65 72 74 2d 69 74 | 65 6d 20 6d 20 6d 65 6e |nvert-it|em m men|
|00001bf0| 75 52 65 63 74 20 69 6e | 2d 69 74 65 6d 2d 6e 75 |uRect in|-item-nu|
|00001c00| 6d 29 29 29 0d 20 20 20 | 20 20 20 69 6e 2d 69 74 |m))). | in-it|
|00001c10| 65 6d 2d 6e 75 6d 29 29 | 0d 0d 0d 28 64 65 66 6d |em-num))|...(defm|
|00001c20| 65 74 68 6f 64 20 63 61 | 72 64 2d 73 74 61 63 6b |ethod ca|rd-stack|
|00001c30| 2d 6d 44 72 61 77 4d 73 | 67 20 28 28 6d 20 63 61 |-mDrawMs|g ((m ca|
|00001c40| 72 64 2d 73 74 61 63 6b | 2d 6d 65 6e 75 29 20 6d |rd-stack|-menu) m|
|00001c50| 65 6e 75 52 65 63 74 29 | 0d 0d 23 7c 0d 20 20 3b |enuRect)|..#|. ;|
|00001c60| 54 68 69 73 20 72 65 73 | 74 6f 72 65 73 20 74 68 |This res|tores th|
|00001c70| 65 20 61 72 65 61 20 75 | 6e 64 65 72 20 74 68 65 |e area u|nder the|
|00001c80| 20 6d 65 6e 75 20 62 79 | 20 63 61 6c 6c 69 6e 67 | menu by| calling|
|00001c90| 20 74 68 65 20 4d 42 44 | 46 20 77 69 74 68 20 74 | the MBD|F with t|
|00001ca0| 68 65 20 52 65 73 74 6f | 72 65 20 6d 65 73 73 61 |he Resto|re messa|
|00001cb0| 67 65 0d 20 20 3b 42 75 | 74 2c 20 69 74 20 61 6c |ge. ;Bu|t, it al|
|00001cc0| 73 6f 20 63 72 61 73 68 | 65 73 20 74 68 65 20 73 |so crash|es the s|
|00001cd0| 79 73 74 65 6d 20 61 66 | 74 65 72 20 79 6f 75 20 |ystem af|ter you |
|00001ce0| 72 65 6c 65 61 73 65 20 | 74 68 65 20 6d 6f 75 73 |release |the mous|
|00001cf0| 65 2e 0d 20 20 3b 49 20 | 74 68 69 6e 6b 20 62 65 |e.. ;I |think be|
|00001d00| 63 61 75 73 65 20 74 68 | 65 20 72 65 73 74 6f 72 |cause th|e restor|
|00001d10| 65 20 63 61 75 73 65 73 | 20 74 68 65 20 4d 42 44 |e causes| the MBD|
|00001d20| 46 20 74 6f 20 72 65 6c | 65 61 73 65 20 73 6f 6d |F to rel|ease som|
|00001d30| 65 20 6d 65 6d 6f 72 79 | 20 28 74 68 65 20 73 74 |e memory| (the st|
|00001d40| 6f 72 65 64 20 62 69 74 | 73 29 0d 20 20 3b 61 6e |ored bit|s). ;an|
|00001d50| 64 20 77 68 65 6e 20 74 | 68 65 20 74 68 65 20 6d |d when t|he the m|
|00001d60| 6f 75 73 65 20 69 73 20 | 72 65 6c 65 61 73 65 64 |ouse is |released|
|00001d70| 2c 20 74 68 65 20 72 65 | 73 74 6f 72 65 20 6d 65 |, the re|store me|
|00001d80| 73 73 61 67 65 20 69 73 | 20 73 65 6e 74 20 61 20 |ssage is| sent a |
|00001d90| 73 65 63 6f 6e 64 20 74 | 69 6d 65 2c 20 62 75 74 |second t|ime, but|
|00001da0| 0d 20 20 3b 74 68 65 20 | 6d 65 6d 6f 72 79 20 69 |. ;the |memory i|
|00001db0| 74 20 75 73 65 73 20 68 | 61 73 20 61 6c 72 65 61 |t uses h|as alrea|
|00001dc0| 64 79 20 62 65 65 6e 20 | 72 65 6c 65 61 73 65 64 |dy been |released|
|00001dd0| 20 2d 20 42 4f 4f 4d 2e | 0d 20 20 28 77 69 74 68 | - BOOM.|. (with|
|00001de0| 2d 6d 61 63 70 74 72 73 | 20 28 28 4d 44 45 46 5f |-macptrs| ((MDEF_|
|00001df0| 68 20 28 67 65 74 2d 72 | 65 73 6f 75 72 63 65 20 |h (get-r|esource |
|00001e00| 22 4d 42 44 46 22 20 30 | 29 29 29 0d 20 20 20 20 |"MBDF" 0|))). |
|00001e10| 28 77 69 74 68 2d 64 65 | 72 65 66 65 72 65 6e 63 |(with-de|referenc|
|00001e20| 65 64 2d 68 61 6e 64 6c | 65 73 20 28 28 4d 44 45 |ed-handl|es ((MDE|
|00001e30| 46 5f 70 20 4d 44 45 46 | 5f 68 29 29 0d 20 20 20 |F_p MDEF|_h)). |
|00001e40| 20 20 20 28 66 66 2d 63 | 61 6c 6c 20 4d 44 45 46 | (ff-c|all MDEF|
|00001e50| 5f 70 20 3a 77 6f 72 64 | 20 30 20 3a 77 6f 72 64 |_p :word| 0 :word|
|00001e60| 20 38 20 3a 77 6f 72 64 | 20 30 20 3a 6c 6f 6e 67 | 8 :word| 0 :long|
|00001e70| 20 30 20 3a 6c 6f 6e 67 | 29 29 29 0d 7c 23 0d 0d | 0 :long|))).|#..|
|00001e80| 20 20 28 6c 65 74 20 28 | 28 66 69 72 73 74 2d 63 | (let (|(first-c|
|00001e90| 61 72 64 2d 6e 75 6d 20 | 31 29 29 0d 20 20 20 20 |ard-num |1)). |
|00001ea0| 28 6c 65 74 20 28 28 74 | 6f 70 4c 65 66 74 20 28 |(let ((t|opLeft (|
|00001eb0| 61 64 64 2d 70 6f 69 6e | 74 73 20 28 70 72 65 66 |add-poin|ts (pref|
|00001ec0| 20 6d 65 6e 75 52 65 63 | 74 20 3a 52 65 63 74 2e | menuRec|t :Rect.|
|00001ed0| 74 6f 70 4c 65 66 74 29 | 20 28 74 63 2d 74 6f 70 |topLeft)| (tc-top|
|00001ee0| 4c 65 66 74 20 6d 29 29 | 29 29 0d 20 20 20 20 20 |Left m))|)). |
|00001ef0| 20 28 72 6c 65 74 20 28 | 28 72 20 3a 52 65 63 74 | (rlet (|(r :Rect|
|00001f00| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001f10| 20 3a 74 6f 70 4c 65 66 | 74 20 74 6f 70 4c 65 66 | :topLef|t topLef|
|00001f20| 74 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |t. | |
|00001f30| 20 20 3a 62 6f 74 52 69 | 67 68 74 20 28 61 64 64 | :botRi|ght (add|
|00001f40| 2d 70 6f 69 6e 74 73 20 | 74 6f 70 4c 65 66 74 20 |-points |topLeft |
|00001f50| 28 63 61 72 64 2d 73 69 | 7a 65 20 6d 29 29 29 29 |(card-si|ze m))))|
|00001f60| 0d 20 20 20 20 20 20 20 | 20 0d 20 20 20 20 20 20 |. | . |
|00001f70| 20 20 3b 64 72 61 77 20 | 66 72 6f 6e 74 20 63 61 | ;draw |front ca|
|00001f80| 72 64 0d 20 20 20 20 20 | 20 20 20 28 77 69 74 68 |rd. | (with|
|00001f90| 2d 63 6c 69 70 2d 72 65 | 63 74 20 72 0d 20 20 20 |-clip-re|ct r. |
|00001fa0| 20 20 20 20 20 20 20 28 | 77 69 74 68 2d 70 73 74 | (|with-pst|
|00001fb0| 72 73 20 28 28 69 2d 74 | 69 74 6c 65 5f 70 20 28 |rs ((i-t|itle_p (|
|00001fc0| 6d 65 6e 75 2d 69 74 65 | 6d 2d 74 69 74 6c 65 20 |menu-ite|m-title |
|00001fd0| 28 65 6c 74 20 28 6d 65 | 6e 75 2d 69 74 65 6d 73 |(elt (me|nu-items|
|00001fe0| 20 6d 29 20 28 31 2d 20 | 66 69 72 73 74 2d 63 61 | m) (1- |first-ca|
|00001ff0| 72 64 2d 6e 75 6d 29 29 | 29 29 29 0d 20 20 20 20 |rd-num))|))). |
|00002000| 20 20 20 20 20 20 20 20 | 28 23 5f 54 65 78 74 42 | |(#_TextB|
|00002010| 6f 78 20 28 25 69 6e 63 | 2d 70 74 72 20 69 2d 74 |ox (%inc|-ptr i-t|
|00002020| 69 74 6c 65 5f 70 29 20 | 28 25 67 65 74 2d 62 79 |itle_p) |(%get-by|
|00002030| 74 65 20 69 2d 74 69 74 | 6c 65 5f 70 29 20 72 20 |te i-tit|le_p) r |
|00002040| 23 24 74 65 4a 75 73 74 | 43 65 6e 74 65 72 29 29 |#$teJust|Center))|
|00002050| 0d 20 20 20 20 20 20 20 | 20 20 20 28 23 5f 46 72 |. | (#_Fr|
|00002060| 61 6d 65 52 65 63 74 20 | 72 29 29 0d 20 20 20 20 |ameRect |r)). |
|00002070| 20 20 20 20 0d 20 20 20 | 20 20 20 20 20 3b 64 72 | . | ;dr|
|00002080| 61 77 20 72 65 73 74 0d | 20 20 20 20 20 20 20 20 |aw rest.| |
|00002090| 28 23 5f 4f 66 66 73 65 | 74 52 65 63 74 20 72 20 |(#_Offse|tRect r |
|000020a0| 28 64 68 20 6d 29 20 28 | 64 76 20 6d 29 29 0d 20 |(dh m) (|dv m)). |
|000020b0| 20 20 20 20 20 20 20 28 | 77 69 74 68 2d 6d 61 63 | (|with-mac|
|000020c0| 70 74 72 73 20 28 28 6c | 2d 72 67 6e 20 28 6c 2d |ptrs ((l|-rgn (l-|
|000020d0| 72 65 67 69 6f 6e 20 6d | 29 29 29 0d 20 20 20 20 |region m|))). |
|000020e0| 20 20 20 20 20 20 28 6d | 6f 76 65 2d 72 65 67 69 | (m|ove-regi|
|000020f0| 6f 6e 2d 74 6f 20 6c 2d | 72 67 6e 20 28 70 72 65 |on-to l-|rgn (pre|
|00002100| 66 20 72 20 3a 52 65 63 | 74 2e 74 6f 70 4c 65 66 |f r :Rec|t.topLef|
|00002110| 74 29 29 0d 20 20 20 20 | 20 20 20 20 20 20 28 6c |t)). | (l|
|00002120| 65 74 20 28 28 69 74 65 | 6d 2d 6c 69 73 74 20 28 |et ((ite|m-list (|
|00002130| 72 65 73 74 20 28 6d 65 | 6e 75 2d 69 74 65 6d 73 |rest (me|nu-items|
|00002140| 20 6d 29 29 29 29 0d 20 | 20 20 20 20 20 20 20 20 | m)))). | |
|00002150| 20 20 20 28 64 6f 74 69 | 6d 65 73 20 28 69 20 28 | (doti|mes (i (|
|00002160| 31 2d 20 28 76 69 73 2d | 63 6f 75 6e 74 20 6d 29 |1- (vis-|count m)|
|00002170| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00002180| 20 28 77 69 74 68 2d 63 | 6c 69 70 2d 72 67 6e 20 | (with-c|lip-rgn |
|00002190| 6c 2d 72 67 6e 0d 20 20 | 20 20 20 20 20 20 20 20 |l-rgn. | |
|000021a0| 20 20 20 20 20 20 28 77 | 69 74 68 2d 70 73 74 72 | (w|ith-pstr|
|000021b0| 73 20 28 28 69 2d 74 69 | 74 6c 65 5f 70 20 28 6d |s ((i-ti|tle_p (m|
|000021c0| 65 6e 75 2d 69 74 65 6d | 2d 74 69 74 6c 65 20 28 |enu-item|-title (|
|000021d0| 66 69 72 73 74 20 69 74 | 65 6d 2d 6c 69 73 74 29 |first it|em-list)|
|000021e0| 29 29 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |))). | |
|000021f0| 20 20 20 20 20 20 28 23 | 5f 54 65 78 74 42 6f 78 | (#|_TextBox|
|00002200| 20 28 25 69 6e 63 2d 70 | 74 72 20 69 2d 74 69 74 | (%inc-p|tr i-tit|
|00002210| 6c 65 5f 70 29 20 28 25 | 67 65 74 2d 62 79 74 65 |le_p) (%|get-byte|
|00002220| 20 69 2d 74 69 74 6c 65 | 5f 70 29 20 72 20 23 24 | i-title|_p) r #$|
|00002230| 74 65 4a 75 73 74 43 65 | 6e 74 65 72 29 29 0d 20 |teJustCe|nter)). |
|00002240| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00002250| 23 5f 46 72 61 6d 65 52 | 67 6e 20 6c 2d 72 67 6e |#_FrameR|gn l-rgn|
|00002260| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00002270| 20 28 23 5f 4f 66 66 73 | 65 74 52 65 63 74 20 72 | (#_Offs|etRect r|
|00002280| 20 20 20 20 20 28 64 68 | 20 6d 29 20 28 64 76 20 | (dh| m) (dv |
|00002290| 6d 29 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |m)). | |
|000022a0| 20 20 28 23 5f 4f 66 66 | 73 65 74 52 67 6e 20 20 | (#_Off|setRgn |
|000022b0| 6c 2d 72 67 6e 20 28 64 | 68 20 6d 29 20 28 64 76 |l-rgn (d|h m) (dv|
|000022c0| 20 6d 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 | m)). | |
|000022d0| 20 20 20 28 70 6f 70 20 | 69 74 65 6d 2d 6c 69 73 | (pop |item-lis|
|000022e0| 74 29 29 29 29 29 29 29 | 29 0d 0d 0d 28 64 65 66 |t)))))))|)...(def|
|000022f0| 2d 4d 44 45 46 20 63 61 | 72 64 2d 73 74 61 63 6b |-MDEF ca|rd-stack|
|00002300| 2d 4d 44 45 46 20 28 3a | 77 6f 72 64 20 6d 65 73 |-MDEF (:|word mes|
|00002310| 73 61 67 65 20 3a 70 74 | 72 20 74 68 65 4d 65 6e |sage :pt|r theMen|
|00002320| 75 20 3a 70 74 72 20 6d | 65 6e 75 52 65 63 74 20 |u :ptr m|enuRect |
|00002330| 3a 6c 6f 6e 67 20 68 69 | 74 50 74 20 3a 70 74 72 |:long hi|tPt :ptr|
|00002340| 20 77 68 69 63 68 49 74 | 65 6d 29 0d 20 20 28 6c | whichIt|em). (l|
|00002350| 65 74 20 28 28 6d 20 28 | 66 69 6e 64 2d 6d 65 6e |et ((m (|find-men|
|00002360| 75 20 28 70 72 65 66 20 | 74 68 65 4d 65 6e 75 20 |u (pref |theMenu |
|00002370| 3a 4d 65 6e 75 49 6e 66 | 6f 2e 6d 65 6e 75 44 61 |:MenuInf|o.menuDa|
|00002380| 74 61 29 29 29 29 0d 20 | 20 20 20 28 65 63 61 73 |ta)))). | (ecas|
|00002390| 65 20 6d 65 73 73 61 67 | 65 0d 20 20 20 20 20 20 |e messag|e. |
|000023a0| 28 23 2e 23 24 6d 44 72 | 61 77 4d 73 67 0d 20 20 |(#.#$mDr|awMsg. |
|000023b0| 20 20 20 20 20 28 63 61 | 72 64 2d 73 74 61 63 6b | (ca|rd-stack|
|000023c0| 2d 6d 44 72 61 77 4d 73 | 67 20 6d 20 6d 65 6e 75 |-mDrawMs|g m menu|
|000023d0| 52 65 63 74 29 29 0d 20 | 20 20 20 20 20 28 23 2e |Rect)). | (#.|
|000023e0| 23 24 6d 43 68 6f 6f 73 | 65 4d 73 67 0d 20 20 20 |#$mChoos|eMsg. |
|000023f0| 20 20 20 20 28 25 70 75 | 74 2d 77 6f 72 64 20 77 | (%pu|t-word w|
|00002400| 68 69 63 68 49 74 65 6d | 20 28 63 61 72 64 2d 73 |hichItem| (card-s|
|00002410| 74 61 63 6b 2d 6d 43 68 | 6f 6f 73 65 4d 73 67 20 |tack-mCh|ooseMsg |
|00002420| 6d 20 6d 65 6e 75 52 65 | 63 74 20 68 69 74 50 74 |m menuRe|ct hitPt|
|00002430| 20 28 25 67 65 74 2d 77 | 6f 72 64 20 77 68 69 63 | (%get-w|ord whic|
|00002440| 68 49 74 65 6d 29 29 29 | 29 0d 20 20 20 20 20 20 |hItem)))|). |
|00002450| 28 23 2e 23 24 6d 53 69 | 7a 65 4d 73 67 0d 20 20 |(#.#$mSi|zeMsg. |
|00002460| 20 20 20 20 20 28 63 61 | 72 64 2d 73 74 61 63 6b | (ca|rd-stack|
|00002470| 2d 6d 53 69 7a 65 4d 73 | 67 20 6d 29 29 29 29 29 |-mSizeMs|g m)))))|
|00002480| 0d 0d 3b 28 4d 44 45 46 | 2d 69 6e 73 74 61 6c 6c |..;(MDEF|-install|
|00002490| 2d 64 65 66 70 72 6f 63 | 20 2a 66 75 6e 6b 79 2d |-defproc| *funky-|
|000024a0| 6d 65 6e 75 2a 29 0d 0d | 28 64 65 66 70 61 72 61 |menu*)..|(defpara|
|000024b0| 6d 65 74 65 72 20 2a 66 | 75 6e 6b 79 2d 6d 65 6e |meter *f|unky-men|
|000024c0| 75 2a 0d 20 20 28 6d 61 | 6b 65 2d 69 6e 73 74 61 |u*. (ma|ke-insta|
|000024d0| 6e 63 65 20 27 63 61 72 | 64 2d 73 74 61 63 6b 2d |nce 'car|d-stack-|
|000024e0| 6d 65 6e 75 0d 20 20 20 | 20 3a 6d 65 6e 75 2d 74 |menu. | :menu-t|
|000024f0| 69 74 6c 65 20 22 66 75 | 6e 6b 79 20 6d 65 6e 75 |itle "fu|nky menu|
|00002500| 22 0d 20 20 20 20 3a 4d | 44 45 46 2d 64 65 66 70 |". :M|DEF-defp|
|00002510| 61 73 63 61 6c 2d 73 79 | 6d 20 27 63 61 72 64 2d |ascal-sy|m 'card-|
|00002520| 73 74 61 63 6b 2d 4d 44 | 45 46 0d 20 20 20 20 3a |stack-MD|EF. :|
|00002530| 6d 65 6e 75 2d 69 74 65 | 6d 73 20 28 6c 69 73 74 |menu-ite|ms (list|
|00002540| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002550| 20 20 28 6d 61 6b 65 2d | 69 6e 73 74 61 6e 63 65 | (make-|instance|
|00002560| 20 27 6d 65 6e 75 2d 69 | 74 65 6d 0d 20 20 20 20 | 'menu-i|tem. |
|00002570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|00002580| 6d 65 6e 75 2d 69 74 65 | 6d 2d 74 69 74 6c 65 20 |menu-ite|m-title |
|00002590| 22 69 74 65 6d 20 31 22 | 29 0d 20 20 20 20 20 20 |"item 1"|). |
|000025a0| 20 20 20 20 20 20 20 20 | 20 20 20 28 6d 61 6b 65 | | (make|
|000025b0| 2d 69 6e 73 74 61 6e 63 | 65 20 27 6d 65 6e 75 2d |-instanc|e 'menu-|
|000025c0| 69 74 65 6d 0d 20 20 20 | 20 20 20 20 20 20 20 20 |item. | |
|000025d0| 20 20 20 20 20 20 20 20 | 3a 6d 65 6e 75 2d 69 74 | |:menu-it|
|000025e0| 65 6d 2d 74 69 74 6c 65 | 20 22 69 74 65 6d 20 32 |em-title| "item 2|
|000025f0| 22 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |"). | |
|00002600| 20 20 20 20 28 6d 61 6b | 65 2d 69 6e 73 74 61 6e | (mak|e-instan|
|00002610| 63 65 20 27 6d 65 6e 75 | 2d 69 74 65 6d 0d 20 20 |ce 'menu|-item. |
|00002620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002630| 20 3a 6d 65 6e 75 2d 69 | 74 65 6d 2d 74 69 74 6c | :menu-i|tem-titl|
|00002640| 65 20 22 69 74 65 6d 20 | 33 22 29 29 29 29 0d 0d |e "item |3"))))..|
|00002650| 3b 28 6d 65 6e 75 2d 69 | 6e 73 74 61 6c 6c 20 20 |;(menu-i|nstall |
|00002660| 20 2a 66 75 6e 6b 79 2d | 6d 65 6e 75 2a 29 0d 3b | *funky-|menu*).;|
|00002670| 28 6d 65 6e 75 2d 64 65 | 69 6e 73 74 61 6c 6c 20 |(menu-de|install |
|00002680| 2a 66 75 6e 6b 79 2d 6d | 65 6e 75 2a 29 0d 3b 28 |*funky-m|enu*).;(|
|00002690| 6d 65 6e 75 2d 64 65 69 | 6e 73 74 61 6c 6c 20 28 |menu-dei|nstall (|
|000026a0| 66 69 6e 64 2d 6d 65 6e | 75 20 22 66 75 6e 6b 79 |find-men|u "funky|
|000026b0| 20 6d 65 6e 75 22 29 29 | 0d 0d 0d 0d 3b 4d 42 61 | menu"))|....;MBa|
|000026c0| 72 48 6f 6f 6b 0d 3b 28 | 25 67 65 74 2d 70 74 72 |rHook.;(|%get-ptr|
|000026d0| 20 28 25 69 6e 74 2d 74 | 6f 2d 70 74 72 20 23 78 | (%int-t|o-ptr #x|
|000026e0| 41 32 63 29 29 0d 0d 3b | 53 61 76 65 64 48 61 6e |A2c))..;|SavedHan|
|000026f0| 64 6c 65 0d 3b 28 25 67 | 65 74 2d 70 74 72 20 28 |dle.;(%g|et-ptr (|
|00002700| 25 69 6e 74 2d 74 6f 2d | 70 74 72 20 23 78 41 32 |%int-to-|ptr #xA2|
|00002710| 38 29 29 0d 0d 0d 0d 7c | 23 00 00 00 00 00 00 00 |8))....||#.......|
|00002720| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002730| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002750| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002780| 00 00 01 00 00 00 01 68 | 00 00 00 68 00 00 00 52 |.......h|...h...R|
|00002790| 00 00 19 7e 00 00 07 70 | 61 74 63 68 65 73 45 00 |...~...p|atchesE.|
|000027a0| 00 00 00 00 ff ff ff ff | ff ff ff ff 00 00 00 01 |........|........|
|000027b0| 0e 64 65 66 70 72 6f 63 | 2d 75 2e 6c 69 73 70 64 |.defproc|-u.lispd|
|000027c0| 02 00 00 00 54 45 58 54 | 43 43 4c 32 01 00 00 00 |....TEXT|CCL2....|
|000027d0| 00 00 54 45 58 54 43 43 | 4c 32 01 00 00 00 00 00 |..TEXTCC|L2......|
|000027e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027f0| 00 00 a5 ce c5 9a 00 00 | 26 99 00 00 01 ba 00 00 |........|&.......|
|00002800| 0f 00 00 00 1c 72 09 76 | 65 72 73 69 6f 6e 2e 68 |.....r.v|ersion.h|
|00002810| 00 00 1c 7e 09 76 65 72 | 73 69 6f 6e 2e 68 0f 00 |...~.ver|sion.h..|
|00002820| 00 00 1c 72 09 76 65 72 | 73 69 6f 6e 2e 68 00 00 |...r.ver|sion.h..|
|00002830| 1c 7e 09 76 65 72 73 69 | 6f 6e 2e 68 1c 72 09 76 |.~.versi|on.h.r.v|
|00002840| 65 72 73 69 6f 6e 2e 68 | 00 00 1c 7e 09 76 65 72 |ersion.h|...~.ver|
|00002850| 73 69 6f 6e 2e 68 1c 72 | 09 76 65 72 73 69 6f 6e |sion.h.r|.version|
|00002860| 2e 68 00 00 1c 7e 09 76 | 65 72 73 69 6f 6e 2e 68 |.h...~.v|ersion.h|
|00002870| 1c 72 09 76 65 72 73 69 | 6f 6e 2e 68 00 00 1c 7e |.r.versi|on.h...~|
|00002880| 00 00 00 0a 00 01 00 16 | 0a 00 01 00 00 00 00 00 |........|........|
|00002890| 00 0a 00 00 07 43 6f 75 | 72 69 65 72 00 00 00 48 |.....Cou|rier...H|
|000028a0| 00 0a 43 6f 75 72 69 65 | 72 00 00 00 00 00 00 00 |..Courie|r.......|
|000028b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028c0| 00 00 00 06 00 08 00 29 | 01 39 03 5f 03 9a 00 29 |.......)|.9._...)|
|000028d0| 01 39 03 5f 03 9a 00 00 | 00 00 00 00 1d ff 00 00 |.9._....|........|
|000028e0| 1d ff 00 00 1b 4b 01 00 | 00 00 01 00 00 00 01 68 |.....K..|.......h|
|000028f0| 00 00 00 68 00 00 00 52 | 00 de 60 98 05 e2 00 00 |...h...R|..`.....|
|00002900| 00 1c 00 52 00 01 46 52 | 45 44 00 01 00 12 4d 50 |...R..FR|ED....MP|
|00002910| 53 52 00 00 00 2a 00 02 | ff ff 00 00 00 00 00 00 |SR...*..|........|
|00002920| 00 00 00 03 ff ff 00 00 | 00 0e 00 00 00 00 03 ed |........|........|
|00002930| ff ff 00 00 00 1c 00 de | 82 c4 00 00 00 00 00 00 |........|........|
|00002940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+